package com.yy.wga.user.service.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yy.wga.common.core.dto.BaseFeignApiReqDTO;
import com.yy.wga.user.feign.request.SaveUserAddressReq;
import com.yy.wga.user.feign.request.UserAddressByLngLatReq;
import com.yy.wga.user.feign.request.UserUpdateLevelReq;
import com.yy.wga.user.feign.response.UserAddressResp;
import com.yy.wga.user.service.pojo.UserBaseDO;

/**
 * 账号主表(UserBase)表服务接口
 *
 * @author guochao
 * @since 2022-05-24 21:41:15
 */
public interface UserBaseService extends IService<UserBaseDO> {
    /**
     * 物理删除
     *
     * @param userId
     */
    void realRemoveById(Long userId);

    /**
     * 更新用户等级
     *
     * @param request
     * @author TongSN
     */
    void updateUserLevelAndClearCache(UserUpdateLevelReq request);

    /**
     * 修改用户地址信息
     *
     * @param request 参数
     */
    void saveUserAddress(SaveUserAddressReq request);

    /**
     * 获取用户地址信息
     *
     * @param reqDTO BaseApiReqDTO
     * @return 用户地址信息
     */
    UserAddressResp getUserAddress(BaseFeignApiReqDTO reqDTO);

    /**
     * 根据经纬度获取用户地址信息
     *
     * @param req UserAddressByLngLatReq
     * @return 用户地址信息
     */
    UserAddressResp getUserAddressByLngLat(UserAddressByLngLatReq req);
}
